__VERSION__ = "0.7.5"
version_history = """
    I originally wrote this to use ZPT (Zope Page Template) markup, and to be
    little more than a wrapper for SimpleTAL (or similar module). As I continued
    to run into problems, both conceptual and practical, I decided to write my
    own, leading to the current implementation. I've left the old version
    history in place, however, for reference purposes - and because the old
    version is where many of the most important improvements (in the API and
    documentation) first occurred.

    0.7.5   Fixed Bug: Added unit tests, and then fixed numerous little bugs
            that the unit tests turned up.
    0.7.4   Fixed Bug: Drilling down through module namespaces now works.
    0.7.3   Fixed Bug: Context variable names now work properly.
    0.7.2   Tweak: Now defaults to XHTML, and attempts to keep a <?XML...
            declaration if it can.
    0.7.1   Fixed Bug: Updated to allow an XML equivalent to drop_tag() in
            lxml.html.
    0.7     FEATURE: cotton.tal now supports XML files as well (and in cases
            where XHTML is well-formed enough, uses the XML parser for that
            as well).
    0.6.3   Fixed Bug: File-finding did not work in all cases I considered
            reasonable. Now they (hopefully) do. Found by the test I wrote in
            0.6.2, so that turned out to be immediately useful! Hurrah!
    0.6.2   Added some testing bits. I want to eventually expand that into a
            testing suite that can run at the push of a button, but for now,
            this gets the basic tests out of the way.
    0.6.1   Updated the version history.
    0.6     A working beta version of the Cotton TAL specification. Mwahahaha!
            The specification can be found here:

            http://wiki.chantofwaves.com/index.cgi/cotton.tal

            Some notes on old WANTS:

            -   Add a test suite for CottonTAL.
                UPDATED: I've started on this, with a few tests.

            -   Replace create_macro() with parser's ability to find the macro.
                UPDATED: Done!

            -   Add a page.type() function for non-XHTML 1.0 Strict pages.
                UPDATED: Any HTML page should work, no type() method required!

            -   Add a page.charset() function for non-utf-8 pages.
                UPDATED: Any charset should work, no charset() method required!

            -   Some useful explicit contexts, in addition to page.add().
                UPDATED: There is now a reserved 'cotton' context variable.

            -   Allow alternate packages, like ZPT, to be used.
                UPDATE: Since cotton.tal *is* the parser, this is no longer
                relevant. This feature want is now nuked.

    --- Wrote the Cotton TAL specification. ---

    0.5.2   Multiple small corrections to the documentation.
    0.5.1   Eleventy-first! Added this version history.
    0.5     FEATURE: CottonTAL now allows you to pass a string to the page()
            class. This makes testing easier, and also allows for oddball
            situations where template files are unacceptable.
    0.4.5   'CottonTAL' is now the official name, and it looks like it's
            ready for beta! (Hahahaha, no.)
    0.4.4   Removed logging - I can add it back in if it's needed, but it
            found all of the errors it was going to find.
    0.4.3   Renamed private functions from "function" to "_function". Added
            Minimal documentation for each. Adjusted some additional
            documentation for clarity.
    0.4.2   Discovered and fixed "&something;" parsing error that was
            preventing the use of HTML entities. In theory, SimpleTAL
            should NOT NOT NOT be pre-processing this stuff. In practice...
            this bugfix.
    0.4.1   Added documentation for create_macro()
    0.4     FEATURE: Errors turned out to be macro handling! Added the
            create_macro() function to deal with macros. This made a lot of
            things suddenly simpler and easier - no need to lose my carefully
            stripped down interface!
    0.3.2   Added logging to find some pernicious errors. Small bug-fix.
            This was mostly with the help of the SimpleTAL mailing list.
    0.3.1   Extensive changes to documentation.
    0.3     FEATURE: Removed STDOUT usage, replaced it with StringIO, so I could
            handle things as pure text.
    0.2.1   Added substantial documentation.
    0.2     FEATURE: Hugely simplified the interface (down to page(),
            page.add(), and page.expand(), much like it is now).
    0.1.2   Existed as a VERY thin wrapper to SimpleTAL, it didn't do
            anything other than take care of some boilerplate, and it still
            had bugs.
    0.1.1   The first usable version of this. Still not spoken of in polite
            company.
    0.1     Not actually usable.
    """
